package BM4;
import BM1.ListNode;

import static BM1.ListNode.buildList;

public class Solution4
{
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param pHead1 ListNode类
     * @param pHead2 ListNode类
     * @return ListNode类
     */
    public ListNode Merge (ListNode pHead1, ListNode pHead2)
    {
        ListNode mergeList = new ListNode(0);
        ListNode cur = mergeList;
        if(pHead1 == null)
        {
            return null;
        }

        while (pHead1 != null&&pHead2 != null)
        {
            if(pHead1.val<=pHead2.val)
            {

                cur.next = pHead1;
                pHead1 = pHead1.next;
                cur = cur.next;
            }
            else
            {
                cur.next = pHead2;
                pHead2 = pHead2.next;
                cur = cur.next;
            }
        }
        if(pHead1== null)
            cur.next = pHead2;
        else
            cur.next = pHead1;
        return mergeList.next;
    }
    public static void main (String[] args)
    {
         var  head1 = buildList(1, 3, 5, 7);
         var  head2 = buildList(2, 4, 6, 8);
         Solution4 s = new Solution4();
         var res = s.Merge(head1,head2);
         while (res != null) {
            System.out.print(res.val);
            if (res.next != null) System.out.print("→");
            res = res.next;
        }
    }
}
